﻿using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace EnqueteMobile.Repository.Database.Model
{
    [Table("Pessoa", Schema = "dbo")]
    public class Pessoa
    {
        [Key]
        [DatabaseGeneratedAttribute(DatabaseGeneratedOption.Identity)]
        public long Id { get; set; }

        [MaxLength(200)]
        [Required]
        public String Nome { get; set; }

        [MaxLength(120)]
        public String NomeAbreviado { get; set; }

        [MaxLength(120)]
        public String EMailPrincipal { get; set; }

        [MaxLength(120)]
        public String EMailSecundario { get; set; }

        public Nullable<long> RG { get; set; }

        [MaxLength(14)]
        public String CPF { get; set; }

        [MaxLength(32)]
        public String CNPJ { get; set; }

        [MaxLength(200)]
        public String RazaoSocial { get; set; }

        [MaxLength(50)]
        public String InscricaoEstadual { get; set; }

        [MaxLength(50)]
        public String InscricaoMunicipal { get; set; }

        public Nullable<long> TituloEleitoral { get; set; }

        public Nullable<long> Sexo { get; set; }

        public Nullable<long> EstadoCivil { get; set; }

        public Nullable<DateTime> DataDeNascimento { get; set; }

        public Nullable<long> TipoPessoa { get; set; }

        public Nullable<Boolean> Valido { get; set; }

        [MaxLength(40)]
        public String ChaveAtivacao { get; set; }

        public Nullable<DateTime> DataAtivacao { get; set; }

        public DateTime DataHoraRegistro { get; set; }

        public DateTime DataHoraUltimaAtualizacao { get; set; }

        [MaxLength(64)]
        public String NumeroDeRegistro { get; set; }

        [MaxLength(3000)]
        public String Comentarios { get; set; }
    }
}